home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).zip / Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).adf / ASo-Tools / Beschreibung < prev    next >
Text File  |  1994-06-13  |  21KB  |  509 lines

  1.  
  2.                                ASo-Tools
  3.  
  4.                           V1.0 vom 10.6.1994
  5.  
  6.     ------------------------------------------------------------------
  7.  
  8.     0. Allgemeines
  9.  
  10.     Die ASo-Tools sind eine Sammlung kleiner Tools.
  11.     Die Tools selbst sind teilweise in Englisch gehalten.
  12.     Im Hinblick auf Nutzung und  Vervielfältigung  der  Programme  und
  13.     Sources stelle ich folgende Regeln auf:
  14.  
  15.         a) Ich behalte das Copyright für die Programme  und  alle  von
  16.            mir selbst entwickelten Programmtechniken.
  17.         b) Die Programme müssen immer zusammen mit  der  Dokumentation
  18.            kopiert werden.  In  Software-Sammlungen  dürfen  auch  die
  19.            Sources  nicht  weggelassen  werden.  Werden  nur  einzelne
  20.            Programme kopiert, so ist  es  gestattet,  diese  Anleitung
  21.            entsprechend zu kürzen.
  22.         c) Die Programme und Ihre Sources dürfen für  folgende  Zwecke
  23.            frei vervielfältigt werden:
  24.            - PD-Disketten und zur Unterstützung anderer PD-Programme
  25.            - private Nutzung
  26.            - direkte Nutzung, nicht aber Vermarktung auf jedem Amiga.
  27.         d) Änderungen an den Programmen sind nur erlaubt, wenn:
  28.            - In den Sources  entsprechende  Vermerke  gemacht  werden,
  29.              die zumindest den Namen des  Autors  (der  Änderung)  und
  30.              eine kurze Beschreibung der Änderung an sich enthalten.
  31.            - Die Programme zusammen mit den  Sources  weiterverbreitet
  32.              werden.
  33.         e) Es ist ausdrücklich erlaubt, die in den Programmen bzw. den
  34.            Sources   verwendeten   Programmiertechniken   für   eigene
  35.            Programme zu kopieren. Sollte eines  der  Tools  in  seiner
  36.            Funktion  einigermaßen  vollständig  in  andere   Programme
  37.            eingehen, so verlange ich  allerdings  in  der  zugehörigen
  38.            Dokumentation einen Verweis auf die Quelle.
  39.         f) Die Programme dürfen auch zur Unterstützung  von  Shareware
  40.            oder Low-Cost-Software beigefügt werden, falls dafür  nicht
  41.            mehr als DM 25,- verlangt werden. In diesem  Fall  hat  mir
  42.            der Autor jedoch nach der Registrierung / dem Verkauf von 5
  43.            Exemplaren seines Programm(pakets) dieses als Gegenleistung
  44.            kostenlos mir zur Verfügung zu stellen.
  45.         g) Alles andere ist grundsätzlich erst  einmal  verboten;  ich
  46.            lasse aber sicher mit mir reden.
  47.  
  48.     Ich bin / der Autor dieser Programmsammlung ist:
  49.  
  50.             Arnold Schommer
  51.             Erikaweg 16
  52.             40670 Meerbusch-Strümp
  53.  
  54.     BugReports sind mir grundsätzlich willkommen,  ich  kann  freilich
  55.     keine Antwort versprechen.
  56.  
  57.     ------------------------------------------------------------------
  58.  
  59.     Allgemeines zu den Beschreibungen der einzelnen Tools:
  60.     - Umgebung [CLI/Workbench]: gibt an, ob die Programme vom CLI  und
  61.       / oder von  der  Workbench  aus  gestartet  werden  können.  Die
  62.       nur-CLI-Programme haben in der Regel keinen speziellen  Startup-
  63.       Code, um beim Workbench-Start fehlerfrei abzubrechen.
  64.       CLI-Programme sollten normalerweise auch unter jeder  beliebigen
  65.       anderen Shell lauffähig sein. (getestet wurde übrigens nicht  im
  66.       CLI, sondern unter CSH 5.19)
  67.     - Voraussetzung:   gibt   hard-   und   softwaremäßige    Mindest-
  68.       Voraussetzungen  für  das  funktionieren   der   Programme   an.
  69.       Teilweise können die Programme auch unter Minimalvoraussetzungen
  70.       (wenig Speicher, Kickstart 1.2)  wenigstens  eine  entsprechende
  71.       Fehlermeldung erzeugen.
  72.       "OS2" bedeutet hier  das  vorliegen  der  Libraries  exec,  dos,
  73.       graphics und intuition mit einer Version von jeweils  mindestens
  74.       36.
  75.     - Aufruf: gibt kurz die möglichen Parameter  an.  Für  CLI-Aufrufe
  76.       ist diese Beschreibung im gleichen Stil wie im Handbch gegeben:
  77.       Was in eckigen Klammern steht, darf fehlen;
  78.       "|" trennt wahlweise Parameter;
  79.       was in spitzen "Klammern" (<>) steht, kann  konkrete  Werte  wie
  80.         Dateinamen oder Zahlen enthalten, der  Rest  muß  (von  Groß-/
  81.         Kleinschreibung abgesehen) ebenso abgetippt werden
  82.     - Programmiersprache: Der Compiler/Assembler, mit dem die  Sources
  83.       compiliert wurden. Genauer sind das:
  84.       - DICE: DICE V2.07 (PD)
  85.       -  A68k:  A68k  V2.71  und  BLink,  allerdings  mit  erweiterten
  86.         Include-Files, die die LVOs enthalten. Diese  Includes  liegen
  87.         bei  und  können  mit  dem  Script-File  "InstallLVO"  in  das
  88.         Include-Verzeichnis ihres Assemblers kopiert werden, wozu  sie
  89.         nur  vorher  das  Assign  "include:"  eben  darauf  einrichten
  90.         müssen.
  91.     - Beispiel: Erklärt an einem Beispiel, wozu  das  jeweilige  Tools
  92.       nützlich ist; oft der Fall, für den ich es  jeweils  geschrieben
  93.       habe.
  94.  
  95.     Es folgen die Beschreibungen der einzelnen Tools:
  96.  
  97.     ------------------------------------------------------------------
  98.  
  99.     1.  LibList
  100.  
  101.     Umgebung:           CLI
  102.     Voraussetzung:      OS2
  103.     Aufruf:             LibList [IDs]
  104.     Programmiersprache: A68k
  105.  
  106.     Funktion:
  107.     Listet alle vorhandenen (shared) Libraries mit  Name,  Anzahl  der
  108.     Funktionsvektoren,  Größe  des   Datenbereiches,   Versions-   und
  109.     Revisionsnummer und Öffnungszähler auf. Wird der  Parameter  'IDs'
  110.     angegeben, so werden in einer zweiten Liste jeweils die Namen  und
  111.     ID-Strings ausgegeben.
  112.  
  113.     ------------------------------------------------------------------
  114.  
  115.     2.  FlushLibs
  116.  
  117.     Umgebung:           CLI, Workbench
  118.     Programmiersprache: A68k
  119.  
  120.     Funktion:
  121.     Versucht,  sämtliche  ungeöffneten  (shared)  Libraries  aus   dem
  122.     Speicher zu löschen, indem es sie öffnet,  das  DelExp-Flag  setzt
  123.     und sie wieder schließt. Laut Amiga-Intern  von  Data-Becker  soll
  124.     der Library so mitgeteilt werden können,  daß  sie  sich  aus  dem
  125.     Speicher zu entfernen hat. Tatsächlich funktioniert  es  aber  nur
  126.     bei wenigen Libraries.
  127.     Unter Kickstart 2.0 kann man  dasselbe  (vermutlich  -  ich  hab's
  128.     nicht  per  Debugger  kontrolliert)  auch  durch   "Avail   flush"
  129.     erreichen.
  130.  
  131.     Beispiel:
  132.     Man entwickelt eine  shared  Library  und  muß  die  alte  Version
  133.     natürlich  nach  jeder  neuen   Compilation   aus   dem   Speicher
  134.     entfernen. Das geht aber eigentlich nur,  wenn man  die  Versions-
  135.     nummer ständig erhöht, was eigentlich nicht  ihr  Sinn  ist.  Hier
  136.     hilft der Aufruf  von  FlushLibs  -  vorausgesetzt,  man  hat  den
  137.     Kopf der Library so programmiert, daß sie sich wie  vorgeschrieben
  138.     bei CloseLibrary() mit desetzten DelExp-Flag selber löscht.
  139.  
  140.     ------------------------------------------------------------------
  141.  
  142.     3.  AskBool
  143.  
  144.     Umgebung:           CLI
  145.     Voraussetzung:      OS2
  146.     Aufruf:             AskBool [TITLE <title>] [QUESTION] <question>
  147.                                 [YES <yes>] [NO <no>]
  148.     Programmiersprache: A68k
  149.  
  150.     Funktion:
  151.     Ähnelt  dem  CLI-Befehl  Ask,  benutzt  aber  nicht  eine   simple
  152.     Tastatureingabe, sondern einen EasyRequest. Das Ergebnis wird  per
  153.     Returncode  gemeldet.  Für  nein   wird   RETURN_OK==0,   für   ja
  154.     RETURN_WARN==5 zurückgegeben. Diese Returncodes können leicht  mit
  155.     dem CLI-Befehl IF abgefragt werden. Diese Returncodes sind mit dem
  156.     CLI-Befehl Ask kompatibel.
  157.  
  158.     Die Parameter bedeuten:
  159.  
  160.     <title>     Titel  des  EasyRequests.  Default:  ""   (Tatsächlich
  161.                 erscheint dann "System Request")
  162.     <question>  Text der Frage. Darf Zeilentrenner enthalten.
  163.     <yes>       Text des "Ja"-Gadgets. Default: "Yes"
  164.     <no>        Text des "Nein"-Gadgets. Default: "No"
  165.  
  166.     Beispiel:
  167.     Eine Batch-Datei zum gesicherten Löschen von Dateien:
  168.  
  169.         .key file/a
  170.         AskBool "<file> wirklich löschen ?" yes Ja no Nein
  171.         if not warn
  172.           delete <file>
  173.         endif
  174.  
  175.     ------------------------------------------------------------------
  176.  
  177.     4.  AskFile
  178.  
  179.     Umgebung:           CLI
  180.     Voraussetzung:      OS2, ASL-Library
  181.     Aufruf:             AskFile [VAR=VARNAME] <varname> [LOCAL]
  182.                                 [QUESTION=TITLE] <title>
  183.                                 [CONFIRM <confirm>] [CANCEL <cancel>]
  184.                                 [NO_OLD=BLANK] [FILE <file>]
  185.                                 [DIR <dir>] [NOFILES] [SAVE]
  186.                                 [PATTERN <pattern>]
  187.                                 [PATTERN_GADGET=PATGG]
  188.     Programmiersprache: A68k
  189.  
  190.     Funktion:
  191.     Führt einen Asl-FileRequest durch und meldet das Ergebnis in einer
  192.     Variablen. Variablen können z.B. im  CLI  mit  "$varname"  benutzt
  193.     werden.
  194.     Die Parameter bedeuten:
  195.  
  196.     <varname>   Name der Variablen.
  197.     LOCAL       Es soll eine lokale Variable sein.  Default:  Es  soll
  198.                 eine globale Variable sein.
  199.     <title>     Titel des FileRequests.
  200.     <confirm>   Text für das Bestätigungs-Gadget.
  201.     <cancel>    Text für das Abbruchs-Gadget.
  202.     NO_OLD      File- und Directory-Name werden mit "" initialisiert.
  203.                 Default: Die Werte für File und Directory-Namen werden
  204.                 aus dem bisherigen Wert der Variablen ermittelt.
  205.     <file>      Der File-Name werden mit "<file>" initialisiert.
  206.                 Default: Die Werte für File und Directory-Namen werden
  207.                 aus dem bisherigen Wert der Variablen ermittelt.
  208.     <dir>       Der Directory-Name werden mit "<dir>" initialisiert.
  209.                 Default: Die Werte für File und Directory-Namen werden
  210.                 aus dem bisherigen Wert der Variablen ermittelt.
  211.     NOFILES     Es werden nur Directorys angezeigt.
  212.     SAVE        Es  wird  ein  Save-Requester  erzeugt  (d.h.   andere
  213.                 Farben, keine Anwahl per Doppelclick)
  214.     <pattern>   Es wird ein Pattern-Gadget erzeugt und mit "<pattern>"
  215.                 initialisiert. Default: es gibt kein Pattern-Gadget.
  216.     PATGG       Es wird ein Pattern-Gadget erzeugt. Default:  es  gibt
  217.                 kein Pattern-Gadget.
  218.  
  219.     Wird der FileRequest  abgebrochen,  so  wird  die  Variable  nicht
  220.     geschrieben.
  221.  
  222.     Beispiel:
  223.     Eine Batch-Datei, die eine  per  FileRequester  ausgewählte  Datei
  224.     ausgibt:
  225.  
  226.         unset which
  227.         AskFile which local "Welche Datei ausgeben ?" confirm diese
  228.                 cancel keine no_old
  229.         type $which
  230.  
  231.     ------------------------------------------------------------------
  232.  
  233.     5.  Chunks
  234.  
  235.     Umgebung:           CLI
  236.     Voraussetzung:      OS2
  237.     Aufruf:             Chunks <File1> [<File2> ...]
  238.     Programmiersprache: A68k
  239.  
  240.     Funktion:
  241.     Listet alle Chunks der genannten Dateien mit ID und Länge auf.
  242.  
  243.     ------------------------------------------------------------------
  244.  
  245.     6.  FileCheck
  246.  
  247.     Umgebung:           CLI
  248.     Aufruf:             FileCheck <Pfad>
  249.     Programmiersprache: DICE
  250.  
  251.     Funktion:
  252.     FileCheck liest alle Dateien in <Pfad> und dessen Sub-Directories.
  253.     Es wurde geschrieben, um Fehler in der  Datei-Struktur  des  alten
  254.     Filesystems aufzufinden.
  255.     Solche Fehler können von  DiskCopy  nicht  entdeckt  werden,  wenn
  256.     keine  TrackDisk-Fehler  vorliegen;  trotzdem  entstehen  dann  im
  257.     Filesystem Prüfsummenfehler.
  258.     Außer  einer  kompletten  Analyse  der  Dateistruktur,   wie   sie
  259.     vermutlich vom DiskDoctor durchgeführt wird, kenne  ich  nur  noch
  260.     das hier praktizierte vollständige Lesen als Prüfmethode,  um  die
  261.     Integrität der Dateien zu testen.
  262.  
  263.     ------------------------------------------------------------------
  264.  
  265.     7.  OS2
  266.  
  267.     Umgebung:           CLI
  268.     Programmiersprache: A68k
  269.  
  270.     Funktion:
  271.     OS2 testet (anhand der  ExecBase-Struktur),  ob  man  sich  gerade
  272.     unter Kickstart 2.0 (oder höher) befindet oder nicht. Das Ergebnis
  273.     wird - für Batchfiles ideal - im ReturnCode übergeben:  RETURN_OK,
  274.     falls Kickstart 2.0, RETURN_WARN, falls tiefer.
  275.  
  276.     Beispiel:
  277.     Ich hatte einmal ein Programm "QMouse", das  unter  Kickstart  2.0
  278.     crasht, während es unter 1.3 gute Dienste versah. Also hieß es  in
  279.     meiner Startup-Sequence:
  280.         ...
  281.         OS2
  282.         IF NOT WARN
  283.             RUN QMouse
  284.         ENDIF
  285.         ...
  286.  
  287.     ------------------------------------------------------------------
  288.  
  289.     8.  Duplicator
  290.  
  291.     Umgebung:           CLI
  292.     Voraussetzung:      OS2
  293.     Aufruf:             Duplicator <datei> [...] <verzeichnis>
  294.     Programmiersprache: DICE
  295.  
  296.     Funktion:
  297.     Duplicator kopiert zunächst  die  genannten  Datein  ins  genannte
  298.     Verzeichnis. Danach überwacht er die Dateien mit Notification  auf
  299.     (Schreib-) Zugriffe und kopiert sie in diesem  Falle  erneut.  Ein
  300.     gleichzeitiges Umbenennen der Dateien ist nicht vorgesehen.
  301.     Duplicator kann durch ^c / Break <n> C abgebrochen werden.
  302.     Duplicator dokumentiert alle seine Aktivitäten  in  einem  eigenen
  303.     Fenster.
  304.  
  305.     Beispiel:
  306.     Ich hatte einmal eine Turbokarte, nicht aber eine Festplatte. Beim
  307.     Programmieren stellte sich folgendes Problem: Wenn ich die Sources
  308.     im RAM: halte, geht das Compilieren ziemlich flott, aber bei jedem
  309.     Guru ist ein - möglicherweise rechts großes - Stück Arbeit futsch.
  310.     Auf Diskette sind die Sources zwar einigermaßen Guru-sicher,  aber
  311.     auch eine unnötige Bremse für den  Compiler.  Ideal  erschien  mir
  312.     unter diesen Hardware-Voraussetzungen, die Sources  auf  Disk  und
  313.     Ram-Disk zu speichern. Und so etwas macht man natürlich nicht  per
  314.     Hand, sondern eben per Duplicator.
  315.  
  316.     ------------------------------------------------------------------
  317.  
  318.     9.  Guru
  319.  
  320.     Umgebung:           CLI
  321.     Aufruf:             Guru <Guru1> [...]
  322.     Programmiersprache: DICE
  323.  
  324.     Funktion:
  325.     Guru kommentiert (in  englisch)  die  gegebene(n)  Guru-Nummer(n).
  326.     Nichts besonderes, es erspart  einem  lediglich  das  Nachschlagen
  327.     der AN_...-Codes im RKRM.
  328.     Aufgrund der zahlreichen Texte  ist  Guru  leider  ziemlich  lang:
  329.     etwa 14K !
  330.  
  331.     ------------------------------------------------------------------
  332.  
  333.     10. TestKey
  334.  
  335.     Umgebung:           CLI
  336.     Aufruf:             TestKey <Tastencode> ... <Tastencode>
  337.                                 [ANY | ALL]
  338.     Programmiersprache: DICE
  339.  
  340.     Funktion:
  341.     TestKey überprüft, ob  die  angegebene  Taste  gedrückt  ist  oder
  342.     nicht. Ist sie gedrückt,  so  wird  RETURN_WARN==5  zurückgegeben,
  343.     sonst RETURN_OK==0.
  344.     Bei mehreren Tasten entscheiden die Optionen  ANY  (default)  bzw.
  345.     ALL über die Verknüpfung:
  346.     Bei ANY genügt es, daß eine der genannten Tasten gedrückt ist,  um
  347.         RETURN_WARN zu erhalten.
  348.     Bei ALL müssen alle genannten Tasten gedrückt sein, um RETURN_WARN
  349.         zu erhalten.
  350.     Erklärung der Tastencodes:
  351.  
  352.     <Tastencode> = <Tastennummer> | QUALIFIER | NUMPAD | FKEYS |
  353.                    MISC | RETURN | SPACE
  354.     dabei sind gleichwertig:
  355.     QUALIFIER   96 97 98 99 100 101 102 103    (alle Qualifier-Tasten)
  356.                 (das sind Shift, Amiga, Alt, und Control und CapsLock)
  357.     NUMPAD      15 29 30 31 45 46 47 61 62 63 67 74 90 91 92 93 94
  358.                                          (alle Tasten am Ziffernblock)
  359.     FKEYS       80 81 82 83 84 85 86 87 88 89   (alle Funktionstasten)
  360.     RETURN      67 68                               (RETURN und ENTER)
  361.     MISC        65 66 70 69 76 77 78 79 95
  362.                  (ESC, TAB, BACKSPACE, DEL, HELP und die Cursortasten)
  363.     SPACE       64                                             (SPACE)
  364.  
  365.     weiter kann man Tastennummern dezimal oder hexadezimal definieren:
  366.     <Tastennummer> =  <Tastennummer_dezimal>     |
  367.                      $<Tastennummer_hexadezimal>
  368.     <Tastennummer_dezimal> = Dezimalzahl zwischen 0 und 103
  369.     <Tastennummer_hexadezimal> = Hexadezimalzahl zwischen 0 und 103
  370.  
  371.     Beispiel:
  372.     Ich habe mir  auf  meiner  Festplatte  u.a.  einen  Terminkalender
  373.     installiert. Diesen möchte ich  einerseits  beim  Booten  aufrufen
  374.     können, andereseits nicht zwangsläufig sehen müssen. Also steht in
  375.     meiner User-Startup:
  376.  
  377.         ...
  378.         TestKey QUALIFIER
  379.         if warn
  380.           cd sys:büro
  381.           TKal
  382.           cd sys:
  383.         endif
  384.         ...
  385.  
  386.     Die Benutzung der Qualifier-Tasten ist hier doppelt bequem, da ich
  387.     einerseits nicht durch irgendwelche Tastendrücke die  Ausgaben  im
  388.     CLI-Fenster blockieren muß und  andererseits  irgendwann  CapsLock
  389.     drücken kann und nicht festhalten brauche,  da  es  im  Sinne  des
  390.     Systems gedrückt ist, solange die LED leuchtet.
  391.  
  392.     ------------------------------------------------------------------
  393.  
  394.     11. Lupe
  395.  
  396.     Umgebung:           CLI, Workbench
  397.     Voraussetzung:      OS2
  398.     Programmiersprache: DICE
  399.  
  400.     Funktion:
  401.     Lupe öffnet ein  Window  und  zeigt  in  diesem  vergrößert  einen
  402.     Ausschnitt der Bildschirm, die sich auf dem aktiven  Screen  unter
  403.     dem Mauscursor befindet.  Diese  Vergrößerung  wird  aktualisiert,
  404.     sobald sich der Mauscursor bewegt - vorausgesetzt, das Window  von
  405.     Lupe ist aktiv. Mit den Tasten 'P' bzw. '+' und 'M' bzw. '-'  kann
  406.     man die Anzahl der Spalten und Zeilen, die rund um den  Mauscursor
  407.     gelesen werden, vergrößern. Ein großer Bereich hat allerdings  den
  408.     Nachteil, doch beachtlich Rechenzeit zu fressen.
  409.  
  410.     Beispiel:
  411.     Sie programmieren gerade eine graphische Oberfläche für Ihr  neues
  412.     Programm und können auf  dem  Monitor  nicht  genau  erkennen,  ob
  413.     verschiedene Elemente korrekt aufeinander ausgerichtet sind.  Hier
  414.     hilft Ihnen Lupe.
  415.  
  416.     ------------------------------------------------------------------
  417.  
  418.     12. DefaultColors
  419.  
  420.     Umgebung:           CLI
  421.     Programmiersprache: A68k
  422.  
  423.     Funktion:
  424.     DefaultColors  setzt  die   Preferences-Screenfarben   gemäß   den
  425.     Default-Preferences.
  426.  
  427.     Beispiel:
  428.     Sie arbeiten sowohl mit Kickstart 1.3 als auch mit 2.0. Um  gleich
  429.     beim Booten sehen zu können, was Sache ist, integrieren Sie diesen
  430.     Befehl in ihrer Startup-Sequence.
  431.  
  432.     ------------------------------------------------------------------
  433.  
  434.     13. FlushFonts
  435.  
  436.     Umgebung:           CLI, Workbench
  437.     Programmiersprache: A68k
  438.  
  439.     Funktion:
  440.     Versucht,  sämtliche  ungeöffneten  Fonts  aus  dem  Speicher   zu
  441.     löschen,  indem  es  sie  an  Graphics.RemFont   übergibt.   Unter
  442.     Kickstart 2.0  werden  die  Fonts  vorher  mit  Graphics.StripFont
  443.     bearbeitet.
  444.  
  445.     WARNUNG:
  446.     Die verwendete Methode habe ich in keinem RKRM o.ä. gefunden,  ich
  447.     weiß also nicht, ob sie  Guru-sicher  ist.  Da  ich  das  Programm
  448.     jedoch mit Enforcer getestet habe,  halte  ich  es  zumindest  für
  449.     absolut unkritisch, ungeöffnete  Fonts  mit  RemFont/StripFont  zu
  450.     bearbeiten.
  451.     Besondere Vorsicht empfehle ich daher  unter  Kickstart  3.0  (V38
  452.     aufwärts).
  453.  
  454.     ------------------------------------------------------------------
  455.  
  456.     14. Dir
  457.  
  458.     Umgebung:           CLI
  459.     Voraussetzung:      OS2
  460.     Aufruf:             Dir [<dir>] [OPT A|I|AI|D|F] [ALL] [INTER]
  461.                             [DIRS] [FILES]
  462.     Programmiersprache: A68k
  463.  
  464.     Funktion:
  465.     Ersatz des Original CLI-Befehls gleichen Namens.  Dieses  Programm
  466.     wurde aus dem Original (V 37.5) durch einen Disassembler gewonnen.
  467.     Anschließend wurden einige Kleinigkeiten per Hand optimiert.
  468.     Parameter siehe DOS-Handbuch.
  469.     Einziger Unterschied zum Original: Dateien  mit  gesetztem  H-Flag
  470.     werden nicht gelistet. Das H- oder  Hidden-Flag  ist  Bit  #7  des
  471.     Protection-Bytes.
  472.  
  473.     WARNUNG:
  474.     Das H-Flag existiert offiziell (zumindest bis OS2) nicht. Es  kann
  475.     daher sein, daß dieses Bit unter OS3 anders Verwendung findet. Wer
  476.     sich nicht im klaren  darüber  ist,  sollte  diesen  Befehl  unter
  477.     Kickstart 3 nicht benutzen.
  478.  
  479.     Beispiel:
  480.     Die Icon-Dateien der Workbench haben  unter  CLI  praktisch  keine
  481.     Bedeutung,  verlängern  aber  das  Listing  eines   Verzeichnisses
  482.     störend. Ich habe mir daher angewöhnt,  die  .info-Files  allesamt
  483.     mit "protect *.info +h" zu bearbeiten. Dann werden sie von  meinem
  484.     Dir einfach übergangen. Leider wird, sobald die Workbench ein Icon
  485.     überschreibt - und sei es, nur um seine Position  zu  verändern  -
  486.     das H-Flag gelöscht.
  487.  
  488.     ------------------------------------------------------------------
  489.  
  490.     15. MakeDir
  491.  
  492.     Umgebung:           CLI
  493.     Voraussetzung:      OS2
  494.     Aufruf:             MakeDir <dir> [...]
  495.     Programmiersprache: A68k
  496.  
  497.     Funktion:
  498.     Ersatz des Original CLI-Befehls gleichen Namens.  Dieses  Programm
  499.     wurde aus dem Original (V37.21) durch einen Disassembler gewonnen.
  500.     Anschließend wurden einige Kleinigkeiten per Hand optimiert.
  501.     Parameter siehe DOS-Handbuch.
  502.     Einziger Unterschied zum Original: Die neu erzeugten Verzeichnisse
  503.     werden  als  nicht  ausführbar  markiert.  Für  mich  war  es  ein
  504.     Schönheitsfehler, daß Verzeichnisse laut  'List'  ausführbar  sein
  505.     sollen.
  506.     Von der Workbench erzeugte Verzeichnisse sind übrigens  unabhängig
  507.     von MakeDir ausführbar.
  508.  
  509.